home *** CD-ROM | disk | FTP | other *** search
- import java.util.Random;
- import javax.microedition.lcdui.Canvas;
- import javax.microedition.lcdui.Graphics;
-
- public class Court extends Canvas {
- private Paddle paddle;
- private Ball[] balls;
- private boolean paddlemove;
- private int PaddleDirection;
- private int ballsInPlay;
- private int MsgStatus = 0;
- public static boolean Msging = false;
- public boolean Playing = false;
- private int StageNo;
- private int[][] blocktable = new int[4][8];
- private boolean blockLeft = false;
- public static int score = 0;
- private boolean ItemMove = false;
- private static int itemX = 0;
- private static int itemY = 0;
- private static Random rand = new Random();
- private BlockBuster blockbuster;
- private int ballsRequested = 1;
- private int itemType = 0;
- static int life;
- static int hiscore;
-
- public Court(BlockBuster var1) {
- this.blockbuster = var1;
- this.paddle = new Paddle();
- this.balls = new Ball[3];
-
- for(int var2 = 0; var2 < this.balls.length; ++var2) {
- this.balls[var2] = new Ball(this);
- }
-
- this.balls[0].putInPlay();
- this.ballsInPlay = 1;
- life = 3;
- this.paddlemove = false;
- this.PaddleDirection = 0;
- this.StageNo = 1;
- this.setBlockTable(this.StageNo);
- hiscore = 0;
- }
-
- public void BallMove(boolean var1) {
- if (var1) {
- this.balls[0].setBallMoveOn();
- } else {
- this.balls[0].setBallMoveOff();
- }
-
- }
-
- public void ChgMsgStatus(int var1) {
- this.MsgStatus = var1;
- }
-
- public int GetMsgStatus() {
- return this.MsgStatus;
- }
-
- public void GoNext(int var1) {
- this.StageNo = var1;
- this.setBlockTable(this.StageNo);
- this.ItemMove = false;
- this.itemType = 0;
- this.ballsInPlay = 1;
- this.balls[1].takeOutOfPlay();
- this.balls[2].takeOutOfPlay();
- this.balls[0].inPlayChange();
- this.balls[0].putInPlay();
- this.paddle.moveCenter();
- this.blockbuster.setSpeed(60);
- this.paddle.init();
- this.paddle.smaller(this.StageNo);
- }
-
- void ItemPaint(Graphics var1) {
- if (this.itemType == 1) {
- var1.setColor(255);
- var1.fillArc(itemX, itemY, 11, 9, 0, 360);
- } else if (this.itemType == 2) {
- var1.setColor(16711782);
- var1.fillArc(itemX, itemY, 11, 9, 0, 360);
- } else if (this.itemType == 3) {
- var1.setColor(16737843);
- var1.fillArc(itemX, itemY, 11, 9, 0, 360);
- } else if (this.itemType == 4) {
- var1.setColor(39168);
- var1.fillArc(itemX, itemY, 11, 9, 0, 360);
- } else if (this.itemType == 5) {
- var1.setColor(3342540);
- var1.drawArc(itemX, itemY, 11, 9, 0, 360);
- var1.fillArc(itemX + 3, itemY + 2, 5, 5, 0, 360);
- } else if (this.itemType == 6) {
- var1.setColor(13369344);
- var1.fillArc(itemX, itemY, 5, 6, 0, 360);
- var1.fillArc(itemX + 5, itemY, 5, 6, 0, 360);
- var1.fillArc(itemX + 2, itemY + 2, 6, 7, 0, 360);
- } else if (this.itemType == 7) {
- var1.setColor(0);
- var1.drawArc(itemX, itemY, 11, 9, 0, 360);
- var1.fillArc(itemX + 3, itemY + 2, 5, 5, 0, 360);
- } else if (this.itemType == 8) {
- var1.setColor(16763904);
- var1.drawArc(itemX, itemY, 11, 9, 0, 360);
- var1.setColor(13369344);
- var1.fillArc(itemX + 3, itemY + 2, 5, 5, 0, 360);
- }
-
- if (itemY > 71 && itemY <= 83) {
- if (this.paddle.ItemisHit(itemX, itemY)) {
- if (this.itemType == 1) {
- this.blockbuster.SpeedUp();
- score += 5;
- } else if (this.itemType == 2) {
- this.blockbuster.SlowDown();
- score += 5;
- } else if (this.itemType == 3) {
- this.paddle.bigger();
- score += 5;
- } else if (this.itemType == 4) {
- this.paddle.smaller(3);
- score += 5;
- } else if (this.itemType == 5) {
- this.addBall();
- score += 5;
- } else if (this.itemType == 6) {
- ++life;
- score += 5;
- } else if (this.itemType == 7) {
- this.paddle.smallest();
- this.blockbuster.setSpeed(30);
- score += 50;
- } else if (this.itemType == 8) {
- this.addBall();
- this.paddle.biggest();
- this.blockbuster.setSpeed(55);
- score += 50;
- }
-
- this.ItemMove = false;
- }
- } else if (itemY > 83) {
- this.ItemMove = false;
- this.itemType = 0;
- }
-
- itemY += 2;
- }
-
- void addBall() {
- ++this.ballsRequested;
- if (this.ballsInPlay > 0) {
- for(int var1 = 0; var1 < this.balls.length; ++var1) {
- if (!this.balls[var1].inPlay()) {
- this.balls[var1].putInPlayAdd(this.paddle.GetPos());
- ++this.ballsInPlay;
- return;
- }
- }
- }
-
- }
-
- public boolean didntHit() {
- --this.ballsInPlay;
- return this.ballsInPlay == 0;
- }
-
- private void displayScore(Graphics var1) {
- char[] var2 = new char[]{(char)(score / 1000 % 10 + 48), (char)(score / 100 % 10 + 48), (char)(score / 10 % 10 + 48), (char)(score % 10 + 48)};
- var1.setColor(255);
- var1.drawString("Score: " + new String(var2), 95, 85, 24);
- var1.drawString(": " + life, 14, 85, 20);
- var1.setColor(13369344);
- var1.fillArc(1, 88, 5, 6, 0, 360);
- var1.fillArc(6, 88, 5, 6, 0, 360);
- var1.fillArc(3, 90, 6, 7, 0, 360);
- }
-
- synchronized boolean isBlockHit(int var1, int var2) {
- boolean var3 = false;
- int var4 = 0;
- byte var5 = 0;
- byte var6 = 0;
- if (var1 > 0 && var1 <= 12) {
- var5 = 0;
- } else if (var1 >= 13 && var1 <= 24) {
- var5 = 1;
- } else if (var1 >= 25 && var1 <= 36) {
- var5 = 2;
- } else if (var1 >= 37 && var1 <= 48) {
- var5 = 3;
- } else if (var1 >= 49 && var1 <= 60) {
- var5 = 4;
- } else if (var1 >= 61 && var1 <= 71) {
- var5 = 5;
- } else if (var1 >= 71 && var1 <= 80) {
- var5 = 6;
- } else if (var1 > 80 && var1 <= 96) {
- var5 = 7;
- }
-
- if (var2 >= 15 && var2 < 20) {
- var6 = 0;
- } else if (var2 >= 20 && var2 < 25) {
- var6 = 1;
- } else if (var2 >= 25 && var2 < 30) {
- var6 = 2;
- } else if (var2 >= 30) {
- var6 = 3;
- }
-
- var4 = this.blocktable[var6][var5];
- if (var4 >= 1) {
- --var4;
- var3 = true;
- ++score;
- if (var4 == 0 && !this.ItemMove) {
- this.itemStart(var6, var5);
- }
- } else {
- var4 = 0;
- var3 = false;
- }
-
- this.blocktable[var6][var5] = var4;
- return var3;
- }
-
- boolean isBlockHitEdge(int var1) {
- boolean var2 = false;
- int var3 = var1 + 5;
- if (var3 == 12 || var3 == 13 || var3 == 24 || var3 == 25 || var3 == 36 || var3 == 37 || var3 == 48 || var3 == 49 || var3 == 60 || var3 == 61 || var3 == 72 || var3 == 73 || var3 == 84 || var3 == 85) {
- var2 = true;
- }
-
- return var2;
- }
-
- boolean isPaddleHit(int var1) {
- return this.paddle.isHit(var1);
- }
-
- boolean isPaddleHitEdgeL(int var1) {
- return this.paddle.isHitEdgeL(var1);
- }
-
- boolean isPaddleHitEdgeR(int var1) {
- return this.paddle.isHitEdgeR(var1);
- }
-
- void itemStart(int var1, int var2) {
- itemX = var2 * 11 + 4;
- itemY = 15 + var1 * 5;
- int var3 = (rand.nextInt() >>> 1) % 100;
- if (var3 < 21) {
- this.itemType = 1;
- } else if (var3 < 36) {
- this.itemType = 2;
- } else if (var3 < 54) {
- this.itemType = 3;
- } else if (var3 < 70) {
- this.itemType = 4;
- } else if (var3 < 89) {
- this.itemType = 5;
- } else if (var3 < 90) {
- this.itemType = 6;
- } else if (var3 < 95) {
- this.itemType = 7;
- } else {
- this.itemType = 8;
- }
-
- this.ItemMove = true;
- }
-
- public void keyPressed(int var1) {
- int var2 = ((Canvas)this).getGameAction(var1);
- switch (var2) {
- case 2:
- this.PaddleDirection = 1;
- this.paddlemove = true;
- ((Canvas)this).repaint();
- return;
- case 3:
- case 4:
- default:
- return;
- case 5:
- this.PaddleDirection = 2;
- this.paddlemove = true;
- ((Canvas)this).repaint();
- }
- }
-
- public void keyReleased(int var1) {
- int var2 = ((Canvas)this).getGameAction(var1);
- switch (var2) {
- case 2:
- this.paddle.left();
- this.PaddleDirection = 0;
- this.paddlemove = false;
- ((Canvas)this).repaint();
- return;
- case 3:
- case 4:
- default:
- return;
- case 5:
- this.paddle.right();
- this.PaddleDirection = 0;
- this.paddlemove = false;
- ((Canvas)this).repaint();
- }
- }
-
- public void keyRepeated(int var1) {
- int var2 = ((Canvas)this).getGameAction(var1);
- switch (var2) {
- case 2:
- this.paddlemove = true;
- this.PaddleDirection = 10;
- return;
- case 3:
- case 4:
- default:
- this.paddlemove = false;
- return;
- case 5:
- this.paddlemove = true;
- this.PaddleDirection = 20;
- }
- }
-
- public void moveBall() {
- if (this.Playing) {
- for(int var1 = 0; var1 < this.balls.length; ++var1) {
- this.balls[var1].move();
- }
-
- }
- }
-
- public void paint(Graphics var1) {
- if (!Msging) {
- if (this.Playing) {
- var1.setColor(16777215);
- var1.fillRect(0, 0, 96, 100);
- var1.setColor(39423);
- var1.fillRect(0, 0, 96, 4);
- var1.fillRect(92, 0, 4, 83);
- var1.fillRect(0, 0, 4, 83);
- var1.setColor(0);
- var1.drawLine(4, 4, 92, 4);
- var1.drawLine(3, 4, 3, 82);
- var1.drawLine(92, 4, 92, 82);
- var1.setColor(255);
- var1.drawLine(3, 3, 93, 3);
- var1.drawLine(2, 4, 2, 82);
- var1.drawLine(93, 4, 93, 82);
- var1.setColor(39372);
- var1.drawLine(2, 2, 94, 2);
- var1.drawLine(1, 4, 1, 82);
- var1.drawLine(94, 4, 94, 82);
- var1.setColor(39372);
- var1.drawLine(2, 2, 94, 2);
- var1.drawLine(1, 4, 1, 82);
- var1.drawLine(94, 4, 94, 82);
- this.blockLeft = false;
-
- for(int var5 = 0; var5 < 4; ++var5) {
- for(int var6 = 0; var6 < 8; ++var6) {
- int var2 = this.blocktable[var5][var6];
- if (var2 != 0) {
- this.blockLeft = true;
- int var3 = var6 * 11 + 4;
- int var4 = 15 + var5 * 5;
- if (var2 == 5) {
- var1.setColor(0);
- var1.fillRect(var3, var4, 10, 4);
- } else if (var2 == 4) {
- var1.setColor(26112);
- var1.fillRect(var3, var4, 10, 4);
- } else if (var2 == 3) {
- var1.setColor(13369344);
- var1.fillRect(var3, var4, 10, 4);
- } else if (var2 == 2) {
- var1.setColor(16753920);
- var1.fillRect(var3, var4, 10, 4);
- } else {
- var1.setColor(26367);
- var1.fillRect(var3, var4, 10, 4);
- }
- }
- }
- }
-
- if (!this.blockLeft) {
- Msging = true;
- if (this.StageNo == 10) {
- this.ChgMsgStatus(5);
- } else {
- this.ChgMsgStatus(2);
- }
- }
-
- for(int var7 = 0; var7 < this.balls.length; ++var7) {
- this.balls[var7].paint(var1);
- }
-
- if (this.ItemMove) {
- this.ItemPaint(var1);
- }
-
- if (this.paddlemove) {
- if (this.PaddleDirection == 1) {
- this.paddle.left();
- } else if (this.PaddleDirection == 2) {
- this.paddle.right();
- } else if (this.PaddleDirection == 10) {
- this.paddle.leftF();
- } else if (this.PaddleDirection == 20) {
- this.paddle.rightF();
- }
- }
-
- if (!this.balls[0].RBallMove()) {
- this.balls[0].SetPos(this.paddle.GetPos());
- }
-
- this.paddle.paint(var1);
- this.displayScore(var1);
- if (score > hiscore) {
- hiscore = score;
- }
-
- }
- }
- }
-
- void reStart() {
- if (this.ballsInPlay <= 0) {
- --life;
- if (life <= 0) {
- Msging = true;
- this.ChgMsgStatus(3);
- } else {
- this.ItemMove = false;
- this.itemType = 0;
- this.ballsInPlay = 1;
- this.paddle.moveCenter();
- this.balls[0].inPlayChange();
- this.balls[0].putInPlay();
- this.blockbuster.setSpeed(60);
- this.paddle.init();
- }
- }
-
- }
-
- public void setBlockTable(int var1) {
- byte var2 = 0;
- byte var3 = 0;
- byte var4 = 0;
- byte var5 = 0;
- if (var1 == 1) {
- var2 = 2;
- var3 = 1;
- var4 = 1;
- var5 = 1;
- } else if (var1 == 2) {
- var2 = 1;
- var3 = 3;
- var4 = 2;
- var5 = 1;
- } else if (var1 == 3) {
- var2 = 2;
- var3 = 3;
- var4 = 1;
- var5 = 1;
- } else if (var1 == 4) {
- var2 = 3;
- var3 = 3;
- var4 = 1;
- var5 = 1;
- } else if (var1 == 5) {
- var2 = 3;
- var3 = 4;
- var4 = 1;
- var5 = 1;
- } else if (var1 == 6) {
- var2 = 4;
- var3 = 3;
- var4 = 2;
- var5 = 1;
- } else if (var1 == 7) {
- var2 = 5;
- var3 = 3;
- var4 = 2;
- var5 = 1;
- } else if (var1 == 8) {
- var2 = 4;
- var3 = 5;
- var4 = 3;
- var5 = 2;
- } else if (var1 == 9) {
- var2 = 5;
- var3 = 5;
- var4 = 4;
- var5 = 3;
- } else if (var1 == 10) {
- var2 = 5;
- var3 = 5;
- var4 = 5;
- var5 = 5;
- }
-
- for(int var6 = 0; var6 < 4; ++var6) {
- for(int var7 = 0; var7 < 8; ++var7) {
- if (var6 == 0) {
- this.blocktable[var6][var7] = var2;
- } else if (var6 == 1) {
- this.blocktable[var6][var7] = var3;
- } else if (var6 == 2) {
- this.blocktable[var6][var7] = var4;
- } else {
- this.blocktable[var6][var7] = var5;
- }
- }
- }
-
- }
- }
-